home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / zm302 / zm12.man < prev    next >
Text File  |  1997-03-26  |  67KB  |  1,815 lines

  1.  
  2.         MEASURE12
  3.  
  4.     ZMD/ZPDフォーマット
  5.  
  6.  
  7.   ここではZMD,ZPD、その他のZMUSIC Ver.3.0で扱う
  8.  
  9. ファイルのフォーマットについて解説します。
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18. [注意]
  19.  
  20.   文中の(.b)(.w)(.l)および(ds.b)(ds.w)(ds.l)等はデータ長を表している。
  21.  
  22. (ds.b)/(.b)  バイトサイズ
  23. (ds.w)/(.w)  ワードサイズ(2バイト)
  24. (ds.l)/(.l)  ロングワードサイズ(4バイト)
  25.  
  26.  
  27. 12.1.  ZMDファイルのヘッダブロックの構成
  28.  
  29.  
  30.   ZMDは
  31.  
  32.     $1a,'ZmuSiC',ZMD version ID($30)
  33.  
  34. のヘッダIDを先頭に以下のようなヘッダ構成を取る。
  35.  
  36.  各ヘッダ項目は各情報/データ領域までのオフセットを格納するもの(z_comn_offset,
  37.  
  38. z_trk_offsetなど)と項目データそのものを格納するもの(z_total_count,z_tempoなど)
  39.  
  40. の2タイプに分けられる。
  41.  
  42.  演奏データなどを一切含んでいない「空」のZMDであっても以下に示したヘッダブロ
  43.  
  44. ックは必ず存在する。
  45. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  46. z_zmusic_id:    ds.l    2    *$1a,'ZmuSiC',ZMD version ID($30)
  47. z_comn_offset:    ds.l    1    *共通コマンドまでのオフセット(0:無し)
  48. z_trk_offset:    ds.l    1    *トラック・チャンネル情報テーブルまでの
  49.                 *オフセット(0:無し)
  50. z_ctrl_offset:    ds.l    1    *演奏制御コマンドまでのオフセット
  51.                 *(0で全トラック演奏)
  52. z_zmd_size:    ds.l    1    *このZMDファイル全体のサイズ
  53. z_song_offset:    ds.l    1    *歌詞データまでのオフセット
  54.         ds.l    1    *リザーブ
  55. z_total_offset:    ds.l    1    *トータルステップタイムの格納アドレス
  56. z_title_offset:    ds.l    1    *タイトル文字列までのオフセット
  57.                 *(または最初のコメント文)
  58. z_total_count:    ds.l    1    *Total Step Time
  59. z_play_time:    ds.l    1    *演奏時間(時間/分/秒)    [reserved]
  60. z_meter:    ds.w    1    *拍子(n/m)
  61. z_metronome:    ds.b    1    *メトロノーム速度
  62.         ds.b    1    *reserved
  63. z_key:        ds.w    1    *調号(n個の#/-n個の♭/0はC),(0で長調/1で短調)
  64. z_master_clock:    ds.w    1    *全音符のマスタークロック[192]
  65. z_tempo:    ds.w    1    *初期テンポ[120]
  66.         ds.w    1    *reserved
  67. z_cmn_flag:    ds.l    1    *共通コマンドの使用状態
  68. z_ctrl_flag:    ds.l    1    *制御コマンドの使用状態
  69. z_instrument:    ds.l    1    *使用楽器タイプ
  70.                 *(d0:GM d1:GS d2:SC88 d3:MT32 d4:U220 d5:M1)
  71. z_nof_fm_ch:    ds.b    1    *FM音源使用チャンネル数(0-8)
  72. z_nof_ad_ch:    ds.b    1    *ADPCM(PCM)音源使用チャンネル数(0-16)
  73. z_nof_md1_ch:    ds.b    1    *MIDI-1使用チャンネル数(0-16)
  74. z_nof_md2_ch:    ds.b    1    *MIDI-2使用チャンネル数(0-16)
  75. z_nof_md3_ch:    ds.b    1    *MIDI-3使用チャンネル数(0-16)
  76. z_nof_md4_ch:    ds.b    1    *リザーブ
  77.         ds.w    1    *リザーブ
  78. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  79. なお、タイトル文字は
  80.     1行目は曲のタイトル。それ以降はコメント。
  81.     また、曲名/作曲者/編曲者/データ作成者の様な一般的な情報を複数行にわたって
  82.     記述する場合は以下の文字列で表される情報タイトルの後に記載することと規定する。
  83.     (情報タイトルの日本語は全角、英字は半角英数大文字のみ、また : は必須)
  84.  
  85. [日本語]    [英語]
  86. 曲名:        TITLE:
  87. 作曲者:        COMPOSER:
  88. 編曲者:        ARRANGER:
  89. 作成者:        MANIPULATER:
  90. 作成日:        DATE:        (原曲の作曲年月日はCOPYRIGHT:)
  91. 録音場所    STUDIO:
  92. 使用機器:    INSTRUMENTS:
  93. ジャンル:    CATEGORY:
  94.  
  95.     .comment {
  96.     TITLE: I am a boy, therefore I have balls.
  97.     作曲者:西川善司
  98.     STUDIO:自宅
  99.     ジャンル:童謡
  100.     }
  101. ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  102. ┃                             オフセット値について                  ┃
  103. ┃                                          ┃
  104. ┃                                          ┃
  105. ┃  ZMUSIC用のデータで扱うオフセット値はオフセット値の格納してある次の  ┃
  106. ┃                                          ┃
  107. ┃アドレスからのオフセットです。今例えば、$A000番地に                  ┃
  108. ┃                                          ┃
  109. ┃ワードサイズのオフセット$0E00が格納されていたとするとポイントするアドレスは ┃
  110. ┃                                          ┃
  111. ┃$A002+$0E00=$AE02となります。                          ┃
  112. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
  113.  
  114.  
  115. 12.2.  共通コマンドのZMD
  116.  
  117.  
  118.   ZMDに共通コマンドが存在しない場合はヘッダブロックの z_comn_offset の内容を
  119.  
  120. 0とする。存在する場合は一番初めの共通コマンドZMDの存在位置までのオフセット
  121.  
  122. アドレスを格納する。
  123.  
  124.  共通コマンドZMDには以下のようなものがある。
  125. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  126. ●CMN_END    共通コマンドZMD終了
  127. $ff(.b)
  128. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  129. ●CMN_INIT    初期化
  130. $00(.b)        ZMD
  131. $00(.b)        将来の拡張用
  132. 合計2bytes
  133. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  134. ●CMN_READ_SUB    サブファイルの読み込みと実行
  135. $04(.b)        ZMD
  136. Filename    ファイル名文字列(Endcode=0(.b))
  137. 合計?bytes
  138.  
  139. または
  140.  
  141. $04(.b)        ZMD
  142. 0(.b)        文字列でなくオフセット値指定で有ることを示すコード
  143. Offset(.l)    データが存在するアドレスまでのオフセット
  144. Size(.l)
  145. 合計10bytes
  146. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  147. ●CMN_TEMPO    テンポ
  148. $08(.b)        ZMD
  149. Tempo(.w)    テンポ値:0-65535
  150. 合計3bytes
  151. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  152. ●CMN_MASTER_CLOCK    全音符クロック数登録
  153. $0c(.b)            ZMD
  154. Master Clock(.w)    マスタークロック:0-32767
  155. 合計3bytes
  156. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  157. ●CMN_FM_TUNE_SETUP    FM音源チューニング
  158. $10(.b)            ZMD
  159. Data...(128bytes)    チューニング値(MML @Kレンジ):-128~+127
  160. 合計129bytes
  161. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  162. ●CMN_PCM_TUNE_SETUP    (AD)PCM音源チューニング
  163. $14(.b)            ZMD
  164. Data...(128bytes)    チューニング値(MML @Kレンジ):-128~+127
  165. 合計129bytes
  166. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  167. ●CMN_VSET:        FM音源音色設定
  168. $18(.b)            ZMD
  169. Tone number(.w)        0-256*128
  170. 0(.b)            RESERVED
  171. Tone data(.b)        0)LFRQ
  172. Tone data(.b)        1)PMD
  173. Tone data(.b)        2)AMD
  174. Tone data(.b)        3)SYNC/OM/WF
  175. Tone data(.b)        4)PAN/AF
  176. Tone data(.b)        5)PMS/AMS
  177. Tone data(.b)        6)OP1:DT1/MUL
  178. Tone data(.b)        7)OP3:DT1/MUL
  179. Tone data(.b)        8)OP2:DT1/MUL
  180. Tone data(.b)        9)OP4:DT1/MUL
  181. Tone data(.b)        10)OP1:TL
  182. Tone data(.b)        11)OP3:TL
  183. Tone data(.b)        12)OP2:TL
  184. Tone data(.b)        13)OP4:TL
  185. Tone data(.b)        14)OP1:KS/AR
  186. Tone data(.b)        15)OP3:KS/AR
  187. Tone data(.b)        16)OP2:KS/AR
  188. Tone data(.b)        17)OP4:KS/AR
  189. Tone data(.b)        18)OP1:AME/1DR
  190. Tone data(.b)        19)OP3:AME/1DR
  191. Tone data(.b)        20)OP2:AME/1DR
  192. Tone data(.b)        21)OP4:AME/1DR
  193. Tone data(.b)        22)OP1:DT2/2DR
  194. Tone data(.b)        23)OP3:DT2/2DR
  195. Tone data(.b)        24)OP2:DT2/2DR
  196. Tone data(.b)        25)OP4:DT2/2DR
  197. Tone data(.b)        26)OP1:D1L/RR
  198. Tone data(.b)        27)OP3:D1L/RR
  199. Tone data(.b)        28)OP2:D1L/RR
  200. Tone data(.b)        29)OP4:D1L/RR
  201. Tone data(.b)        30)-45)NAME
  202. 合計50bytes
  203. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  204. ●CMN_WAVE_FORM        波形メモリ登録
  205. $1c(.b)            ZMD
  206. Wave number(.w)        波形番号:8-255
  207. Data Size(.l)        データサイズ:2~    (かならず偶数)
  208. Loop Type(.b)        波形タイプ:(0:1Shot  1:Loop  2:Alternative-Loop)
  209. Loop Start Offset(.l)    ループ開始オフセット:0~(かならず偶数)
  210.                         (ループなしの場合は0)
  211. Loop End Offset(.l)    ループ終端オフセット:0~(かならず偶数)
  212.         (オフセット値はループ終端データのあるオフセットアドレス+2)
  213.         (ループなしの場合は最終データの存在するオフセットアドレス+2)
  214. Loop Time(.l)        ループ回数:(1~)    (0は無限回に相当)
  215. Reserved(.l)        リザーブ
  216. String Length(.b)    コメント文字列長:0-255
  217. String Data...        コメント文字列        (No Endcode)
  218.             (.even処理)
  219. Wave Data(.w)        波形データ        (必ず偶数アドレスから...)
  220. 合計25~?bytes
  221. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  222. ●CMN_REGISTER_PCM    (AD)PCM登録
  223. $20(.b)            ZMD
  224. Flag(.w)        フラグ
  225.             d15:PCMデータ加工オプションパラメータの有無
  226.                 (0:no 1:exist)
  227.             d0-d14:1-32767    次の共通コマンドまでのオフセット
  228.             d0-d14:0は15ビットでは表現出来ない場合を表すが通常は
  229.                    無視してよい
  230. Note/Timbre No.(.w)    Note Number(0-32767)/Timbre Number($8000+0-32767)
  231. Regtype(.b)        登録タイプ(-1:ADPCM  0:V2互換  1:16bitPCM  2:8bitPCM)
  232. Original Key Code(.b)    オリジナルキー(0-127:Key Code  128:No Original Key)
  233. Reserved(.w)        リザーブ
  234. Tone Name(.b)...0(.b)    TONE NAME(最大32バイト)        (Endcode=0(.b))
  235. Filename(.b)...0(.b)    ファイルネーム文字列        (Endcode=0(.b))
  236.             (Filename).l=$00xxxxxxの場合はすでに登録されている
  237.             トーン/音色データをコピー流用する指定となる。
  238.             (Filename).l=$01xxxxxxの場合はすでに登録されている
  239.             トーン/音色データを流用する。    (この場合、.LOOP以外の
  240.             PPCは利用不可)
  241. PPC(?butes)        PCM PROCESSING COMMAND(PPC)...    PPCについては後述
  242. 合計21-?bytes
  243. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  244. ●CMN_ERASE_PCM        (AD)PCM登録取消
  245. $24(.b)            ZMD
  246. Note/Timbre No.(.w)    Note Number(0-32767)/Timbre Number($8000+0-32767)
  247. 合計3bytes
  248. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  249. ●CMN_BLOCK_PCM        ZPD読み込み
  250. $28(.b)            ZMD
  251. Filename(.b)...0(.b)    ファイルネーム文字列(Endcode=0(.b))
  252. 合計3~?bytes
  253.  
  254. または
  255.  
  256. $28(.b)            ZMD
  257. ZPD.ID(.b)        ZPD ID(0:V1~2 1:V3 2:PDX)
  258. Offset(.l)        データが存在するアドレスまでのオフセット
  259. 合計6bytes
  260. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  261. ●CMN_CRNT_MIDI_IN    カレントMIDI-IN設定
  262. $2c(.b)            ZMD
  263. MIDI I/F Number(.b)    インターフェース番号:0-3
  264. 合計2bytes
  265. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  266. ●CMN_CRNT_MIDI_OUT    カレントMIDI-OUT設定
  267. $30(.b)            ZMD
  268. MIDI I/F Number(.b)    インターフェース番号:0-3
  269. 合計2bytes
  270. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  271. ●CMN_MIDI_TRANSMISSION        MIDIデータ転送
  272. $34(.b)                ZMD
  273. MIDI I/F(.b)            インターフェース番号:0-3/(-1:カレントMIDI-OUT)
  274. String Length(.b)        文字列長:0-255
  275. String Data...            コメント文字列        (No Endcode)
  276. Transmit Data Length(.l)    転送データ長
  277. Data....            転送データ
  278. 合計8-?bytes
  279. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  280. ●CMN_MIDI_DUMP        スタンダードMIDIファイルの送信
  281. $38(.b)            ZMD
  282. MIDI I/F(.b)        インターフェース番号:0-3/(-1:カレントMIDI-OUT)
  283. Filename(.b)...0(.b)    ファイルネーム文字列    (Endcode=0(.b))
  284. 合計4-?bytes
  285.  
  286. または
  287.  
  288. $38(.b)            ZMD
  289. MIDI I/F(.b)        インターフェース番号:0-3/(-1:カレントMIDI-OUT)
  290. 0(.b)            文字列でなくオフセット値指定で有ることを示すコード
  291. Offset(.l)        データが存在するアドレスまでのオフセット
  292. 合計7bytes
  293. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  294. ●CMN_COMMENT        コメント
  295. $40(.b)            ZMD
  296. String(.b)...0(.b)    文字列            (Endcode=0(.b))
  297. 合計3-?bytes
  298. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  299. ●CMN_PRINT        文字列表示
  300. $44(.b)            ZMD
  301. String(.b)...0(.b)    文字列            (Endcode=0(.b))
  302. 合計3-?bytes
  303. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  304. ●CMN_DUMMY        ダミー
  305. $48(.b)            ZMD
  306. 合計1byte
  307. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  308. ●CMN_HALT        停止
  309. $4c(.b)            ZMD
  310. Interval(.l)        待ち時間=1/60秒×Interval(.l)
  311. 合計5bytes
  312. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  313.  
  314.  
  315. 12.3.  PCM PROCESSING COMMANDのZMD
  316.  
  317.  
  318.   共通コマンドZMD「CMN_REGISTER_PCM」はPCMの加工をPCM PROCESSING COMMAND(PPC)
  319.  
  320. を用いてVer.2.0以前の(AD)PCM加工処理よりも柔軟な加工が行えるようになっている。
  321.  
  322. 以下に示すのはPPCのZMDで、共通コマンドZMD「CMN_REGISTER_PCM」中に用いて初めて
  323.  
  324. 機能し、これ単体で用いられることはない(用いることは出来ない)。
  325. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  326. ●PPC_END    PPC終了
  327. $00(.w)        PPC END
  328. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  329. ●PPC_PITCH        音程変更
  330. $02(.w)         PPC
  331. Offset Count(.l)    加工開始オフセット:値は物理サイズではなくて
  332.                        データカウント
  333. Processing Count(.l)    加工サイズ:値は物理サイズではなくてデータカウント
  334.             0は加工開始オフセット以降全てを加工範囲とする
  335. Source Frq(.w)        変換元周波数:1-65535
  336. Dest.  Frq(.w)        変換後周波数:1-65535
  337. 合計13bytes
  338.  
  339. ※データカウントは登録タイプによってその次元は変化する
  340. ・登録タイプがADPCMのときデータ1カウントは物理量1バイトに相当する
  341. ・登録タイプが16bitPCMの時にはデータ1カウントは物理量2バイトに相当する
  342.  
  343. その他のPPCについても同様
  344. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  345. ●PPC_VOLUME        音量変更
  346. $04(.w)         PPC
  347. Offset Count(.l)    加工開始オフセット:値は物理サイズではなくて
  348.                        データカウント
  349. Processing Count(.l)    加工サイズ:値は物理サイズではなくてデータカウント
  350.             0は加工開始オフセット以降全てを加工範囲とする
  351. Volume(.w)        音量:0-65535
  352. 合計11bytes
  353. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  354. ●PPC_MIX        合成
  355. $06(.w)         PPC
  356. $0000(.w)        固定値
  357. Mix Source(.w)        合成元:(Tone:0-32767  Timbre:$8000+(0-32767))
  358. Offset Count(.l)    合成開始オフセット:値は物理サイズではなくて
  359.                        データカウント(負の値も可能)
  360.                        負の場合は絶対値カウント分、合成先
  361.                        データの前側に合成する指定となる。
  362. PPC...            PPCをさらにここに含め合成元のデータに対して加工処理を
  363.             施すことが出来る。
  364.             PPC_ENDで合成元のデータに対するPPC列の終端を表す。
  365. 0(.b)            PPC_MIX終了
  366. 合計10-?bytes
  367.  
  368. または
  369.  
  370. $06(.w)         PPC
  371. Filename...0(.b)    ファイルネーム文字列    (0=Endcode(.b))
  372. Offset Count(.l)    合成開始オフセット:値は物理サイズではなくて
  373.                        データカウント(負の値も可能)
  374.                        負の場合は絶対値カウント分、合成先
  375.                        データの前側に合成する指定となる。
  376. PPC...            PPCをさらにここに含め合成元のデータに対して加工処理を
  377.             施すことが出来る。
  378.             PPC_ENDで合成元のデータに対するPPC列の終端を表す。
  379. 0(.b)            PPC_MIX終了
  380. 合計8-?bytes
  381. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  382. ●PPC_TRUNCATE        切りだし
  383. $08(.w)         PPC
  384. Offset Count(.l)    切りだし開始オフセット:値は物理サイズではなくて
  385.                        データカウント
  386. Truncate Count(.l)    切りだしサイズ:値は物理サイズではなくてデータカウント
  387.                    0はオフセット以降全てを加工範囲とする
  388. 合計9bytes
  389. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  390. ●PPC_REVERSE        反転
  391. $0a(.w)         PPC
  392. Offset Count(.l)    反転開始オフセット:値は物理サイズではなくて
  393.                        データカウント
  394. Reverse Count(.l)    反転サイズ:値は物理サイズではなくてデータカウント
  395.                    0はオフセット以降全てを加工範囲とする
  396. 合計9bytes
  397. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  398. ●PPC_FADE        フェーダー操作
  399. $0c(.w)         PPC
  400. Offset Count(.l)    加工開始オフセット:値は物理サイズではなくて
  401.                        データカウント
  402. Fade Count(.l)        加工サイズ:値は物理サイズではなくてデータカウント
  403.                    0はオフセット以降全てを加工範囲とする
  404. Start Level(.w)        開始音量:0-128-65535(128は原音レベル)
  405. End Level(.w)        終了音量:0-128-65535(128は原音レベル)
  406. 合計13bytes
  407. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  408. ●PPC_BEND        ピッチベンド
  409. $0e(.w)         PPC
  410. Offset Count(.l)    加工開始オフセット:値は物理サイズではなくて
  411.                        データカウント
  412. Bend Count(.l)        加工サイズ:値は物理サイズではなくてデータカウント
  413.                    0はオフセット以降全てを加工範囲とする
  414. Start Frq(.w)        開始周波数:1-65535[Hz]
  415. End Frq(.w)        終了周波数:1-65535[Hz]
  416. 合計13bytes
  417. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  418. ●PPC_LOOP    ループポイント設定
  419. $10(.w)        PPC
  420. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  421.         d0:loop start point
  422.         d1:loop end point
  423. Loop Type(.b)    ループタイプ:0=FORWARD        (現在は0のみ)
  424. Loop Time(.l)    ループ回数:1~            (0は無限回に相当)
  425. Loop Start(.l)    ループ開始オフセット:値は物理位置ではなくてデータカウント
  426.                      (omt.d0=1の時だけ設定)
  427. Loop End(.l)    ループ終了オフセット:値は物理位置ではなくてデータカウント
  428.                      (omt.d1=1の時だけ設定)
  429. 合計6-14bytes
  430. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  431. ●PPC_CONNECT        接合
  432. $12(.w)            PPC
  433. $0000(.w)        固定値
  434. Connect Source(.w)    接合元:(Tone:0-32767  Timbre:$8000+(0-32767))
  435. Offset Count(.l)    接合開始オフセット:値は物理サイズではなくて
  436.                        データカウント(負の値も可能)
  437.                        負の場合は絶対値カウント分、接合先
  438.                        データの前側に接合する指定となる。
  439. PPC...            PPCをさらにここに含め接合元のデータに対して加工処理を
  440.             施すことが出来る。
  441.             PPC_ENDで接合元のデータに対するPPC列の終端を表す。
  442. 0(.b)            PPC_CONNECT終了
  443.  
  444. 合計11-?bytes
  445.  
  446. または
  447.  
  448. $12(.w)            PPC
  449. filename...0(.b)    ファイルネーム文字列        (Endcode=0(.b))
  450. Offset Count(.l)    接合開始オフセット:値は物理サイズではなくて
  451.                        データカウント(負の値も可能)
  452.                        負の場合は絶対値カウント分、接合先
  453.                        データの前側に接合する指定となる。
  454. PPC...            PPCをさらにここに含め接合元のデータに対して加工処理を
  455.             施すことが出来る。
  456.             PPC_ENDで接合元のデータに対するPPC列の終端を表す。
  457. 0(.b)            PPC_CONNECT終了
  458. 合計9-?bytes
  459. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  460. ●PPC_DELETE        削除
  461. $14(.w)            PPC
  462. Offset Count(.l)    削除開始オフセット:値は物理サイズではなくて
  463.                        データカウント
  464. Truncate Count(.l)    削除サイズ:値は物理サイズではなくてデータカウント
  465.                        0はオフセット以降全てを削除範囲とする
  466. 合計9bytes
  467. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  468. ●PPC_DISTORTION    ディストーション
  469. $16(.w)            PPC
  470. Offset Count(.l)    加工開始オフセット:値は物理サイズではなくて
  471.                        データカウント
  472. Processing Count(.l)    加工サイズ:値は物理サイズではなくてデータカウント
  473.                        0はオフセット以降全てを加工範囲とする
  474. Volume(.w)        音量倍率:0-65535
  475. Cut Off Level(.w)    音量臨海値:0-32767(絶対値をこれ以下のレベルに丸める)
  476. 合計13bytes
  477. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  478. ●PPC_SMOOTH        平均化(スムーズ化)
  479. $18(.w)            PPC
  480. Offset Count(.l)    加工開始オフセット:値は物理サイズではなくて
  481.                        データカウント
  482. Reverse Count(.l)    加工サイズ:値は物理サイズではなくてデータカウント
  483.                    0はオフセット以降全てを加工範囲とする
  484. Repeat(.w)        処理繰り返し回数:0~65535(0は1回,65535は65536回)
  485. 合計11bytes
  486. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  487.  
  488.  
  489. 12.4.  制御コマンドのZMD
  490.  
  491.  
  492.   ZMDに制御コマンドが存在しない場合はヘッダブロックの z_ctrl_offset の内容を
  493.  
  494. 0とする。存在する場合は一番初めの制御コマンドZMDの存在位置までのオフセット
  495.  
  496. アドレスを格納する。
  497.  
  498.  制御コマンドZMDには以下のようなものがある。
  499. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  500. ●CTRL_END    制御コマンド終了
  501. $ff(.b)        ZMD
  502. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  503. ●CTRL_PLAY        演奏開始
  504. $00(.w)            ZMD
  505. Track Number(.w)    トラック番号:0-65534
  506. Track Number(.w)    トラック番号:0-65534
  507.     :
  508.     :
  509. Track Number(.w)    トラック番号:0-65534
  510. -1(.w)            CTRL_PLAY終了
  511. 合計4-?bytes
  512. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  513. ●CTRL_STOP        演奏停止
  514. $04(.w)            ZMD
  515. Track Number(.w)    トラック番号:0-65534
  516. Track Number(.w)    トラック番号:0-65534
  517.     :
  518.     :
  519. Track Number(.w)    トラック番号:0-65534
  520. -1(.w)            CTRL_STOP終了
  521. 4-?bytes
  522. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  523. ●CTRL_CONT        演奏再開
  524. $08(.w)            ZMD
  525. Track Number(.w)    トラック番号:0-65534
  526. Track Number(.w)    トラック番号:0-65534
  527.     :
  528.     :
  529. Track Number(.w)    トラック番号:0-65534
  530. -1(.w)            CTRL_STOP終了
  531. 合計4-?bytes
  532. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  533. ●CTRL_MFADER    マスターフェーダー
  534. $0c(.w)        ZMD
  535. Device-ID(.w)    音源ID:(FM=0,(AD)PCM=1,MIDI1=$8000,MIDI2=$8001,
  536.             MIDI3=$8002,MIDI4=$8003,
  537.             -1=全音源が操作対象となる)
  538. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  539.         d0:speed
  540.         d1:Start Level
  541.         d2:End Level
  542. Speed(.w)    移動速度:0-65535
  543. Start Level(.b)    開始レベル:0-128
  544. End Level(.b)    終了レベル:0-128
  545. 合計5-8bytes
  546. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  547. ●CTRL_TFADER        トラックフェーダー
  548. $10(.w)            ZMD
  549. Track Number(.w)    トラック番号:0-65534,-1=全トラックが操作対象となる
  550. omt(.b)            省略フラグ(bit=1で対応パラメータが後続する)
  551.             d0:Speed
  552.             d1:Start Level
  553.             d2:End Level
  554. Speed(.w)        移動速度:0-65535(0=移動しない)
  555. Start Level(.b)        開始レベル:0-128
  556. End Level(.b)        終了レベル:0-128
  557. 合計5-8bytes
  558. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  559. ●CTRL_MASK        マスク制御
  560. $14(.w)            ZMD
  561. {
  562.     Track Number(.w)    トラック番号:0-65534
  563.     Mask Mode(.w)    マスクモード:0=MASK OFF, 1=REVERSE, -1=MASK ON
  564. }×n
  565. -1(.w)            CTRL_MASK終了
  566. 合計8-?bytes
  567.  
  568. 全トラックを操作対象とする場合は
  569.  
  570. $14(.w)            ZMD
  571. -1(.w)            全トラックを操作対象とするコード
  572. Mask Mode(.w)        マスクモード:0=MASK OFF, 1=REVERSE, -1=MASK ON
  573. 合計6bytes
  574. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  575.  
  576.  
  577. 12.5.  トラック・チャンネル情報テーブルの構成
  578.  
  579.  
  580.   ZMDに演奏データが存在しない場合はヘッダブロックの z_trk_offset の内容を
  581.  
  582. 0とする。存在する場合はトラック・チャンネル情報テーブルの存在位置までの
  583.  
  584. オフセットアドレスを格納する。
  585.  
  586.  トラック・チャンネル情報テーブルとは、演奏データまでのオフセットアドレス、
  587.  
  588. そのトラックに割り当てられた初期音源種別等の情報を格納した領域のこと。
  589.  
  590.  以下にそのトラック・チャンネル情報テーブルの構成を示す。
  591. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  592. ti_n_of_tracks:    ds.w    1    *.w トラック数-1(0-65535)
  593.  
  594. ti_track_stat:    ds.b    1    *.b $00=performance,$80=非演奏trackマーク(詳しくはZMID.MAC参照)
  595. ti_track_mode:    ds.b    1    *.b $80=no key off(詳しくはZMID.MAC参照)
  596. ti_trkfrq:    ds.b    1    *.b 割り込み比率(0:normal,1:2回に1回,2:3回に一回,...)
  597.         ds.b    1    *.b
  598. ti_type:    ds.w    1    *.w デバイスタイプ(FM:0 ADPCM:1 MIDI:$8000~$8003
  599.                 *           PATTERN:$7fff CURRENT-MIDI:$ffff)
  600. ti_ch:        ds.w    1    *.w チャンネル(0-15)
  601. ti_play_data:    ds.l    1    *.l 演奏データまでのoffset
  602. ti_extra_info:    ds.l    1    *.l トラック追加情報までのオフセット(0の場合はない)
  603.  
  604. 以降、ti_track_stat~ti_extra_infoまでが総トラック数分続く
  605. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  606.  
  607.  
  608. 12.6.  トラック追加情報
  609.  
  610.  
  611.  トラック追加情報とは演奏トラック1つ1つに対して付加される情報で、トラック・
  612.  
  613. チャンネル情報テーブル中の ti_extra_info から参照されるもの。トラック追加情報が
  614.  
  615. ない場合は ti_extra_info には0を格納する。
  616.  
  617.  以下にトラック追加情報の構成を示す。
  618. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  619. tx_total_step:        ds.l    1    *.l    トラック総ステップタイム
  620. tx_checksum:        ds.l    1    *.l    トラックチェックサム
  621. tx_n_of_measure:    ds.l    1    *.l    総小節数
  622. tx_comment_length:    ds.l    1    *.l    トラックコメント文字列長(0:none)
  623.  
  624. 以降、tx_comment_lengthで表される長さの文字列が続く。ただしEndcode=0(.b)など
  625. は無い。
  626. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  627.  
  628.  
  629. 12.7.  演奏トラックのZMD
  630.  
  631.  
  632.  演奏トラックには以下に示すZMDが格納される。演奏トラックはトラック・チャンネル
  633.  
  634. 情報テーブルの ti_play_data にその位置までのオフセットアドレスが格納される。
  635.  
  636. [注意]
  637.  
  638. ・(.v)で表されるデータサイズは1バイト~2バイトの任意のサイズを取ることを
  639.   意味する。
  640.  
  641. ・[]で表される数値はデフォルトであることを意味する。
  642.  
  643. ・「→XXXX」などは、そのパラメータがMEASURE13で解説されるZMUSIC Ver.3.0の
  644.   演奏トラックワークに格納されることを意味している。
  645. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  646. ■$00~$7f
  647. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  648. ●音符(MML C,D,E,F,A,G)
  649. Note Number(.b)    ノート番号:0-127(.b)                →k_note
  650. Step Time(.v)    ステップタイム:0-127(.b), 32768+(0-32767)(.w)    →p_step_time
  651. Gate Time(.v)    ゲートタイム:$8000(.w)=tie,
  652.                  0-127(.b) | 32768+(128-32767)(.w)    →k_gate_time
  653. Velocity(.b)    ベロシティ:0-127, 128=use default,        →p_velo
  654.                129~191,192,193~255は-63~-1,0,1~63に対応する
  655. 合計4-6bytes
  656. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  657. ■$80~$8f
  658. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  659. ●休符(MML R)
  660. $80(.b)        ZMD
  661. Step Time(.v)    ステップタイム:0-127(.b) | 32768+(0-32767)(.w)    →p_step_time
  662. Gate Time(.v)    ゲートタイム:$8000(.w)=tie
  663.                  0-127(.b) | 32768+(128-32767)(.w)    →k_gate_time
  664. 合計3-5bytes
  665. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  666. ●ウェイト(MML @W)
  667. $81(.b)        ZMD
  668. Step Time(.v)    ステップタイム:0-127(.b) | 32768+(0-32767)(.w)    →p_step_time
  669. 合計2-3bytes
  670. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  671. ●トラックディレイ(MML [TRACK_DELAY])
  672. $82(.b)        ZMD
  673. Step Time(.v)    0-127(.b), 32768+(0-32767)(.w)            →p_step_time
  674. 合計2-3bytes
  675. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  676. ●MXDRV系音符
  677. $83(.b)        ZMD
  678. Note Number(.b)    ノート番号:0-127(+$80だとtie指定となる)        →k_note
  679. Step Time(.v)    ステップタイム:0-127(.b) | 32768+(0-32767)(.w)    →p_step_time
  680. 合計3-6bytes
  681. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  682. ●ポルタメント1(MML (~))
  683. $84(.b)        ZMD
  684. Note Number(.b)    ノート番号:0-127                →k_note
  685.                $80+(0-127)の場合はディレイ有り
  686. Dest.Note(.b)    ポルタメント先のノート番号:0-127
  687.                        $80+(0-127)の場合はポルタメント
  688.                        タイム有り
  689. Delay(.v)    ディレイ:0-127(.b) | 32768+(0-32767)(.w)    →p_port_dly
  690.              (ただしNote Number(.b)≧$80のときのみ)
  691. Port.Time(.v)    ポルタメントタイム:0-127(.b)            →p_port_cnt
  692.                    32768+(0-32767)(.w)
  693.                    (ただしDest.Note≧$80のときのみ)
  694. Step Time(.v)    ステップタイム:1-127(.b) | 32768+(1-32767)(.w)     →p_step_time
  695. Gate Time(.v)    ゲートタイム:$8000(.w)=tie            →k_gate_time
  696.                  0-127(.b) | 32768+(128-32767)(.w)
  697. Velocity(.b)    ベロシティ:0-127 | 128=use default,        →p_velo
  698.                129~191,192,193~255は-63~-1,0,1~+63に対応する
  699. 合計6-11bytes
  700. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  701. ●ポルタメント2(MML([~]))
  702. $85(.b)        ZMD
  703. Note Number(.b)    ノート番号:0-127                →k_note
  704.                $80+(0-127)の場合はディレイ有り
  705. Dest.Note(.b)    ポルタメント先のノート番号:0-127
  706.                        $80+(0-127)の場合はポルタメント
  707.                        タイム有り
  708. Delay(.v)    ディレイ:0-127(.b) | 32768+(0-32767)(.w)    →p_port_dly
  709.              (ただしNote Number(.b)≧$80のときのみ)
  710. Port.Time(.v)    ポルタメントタイム:0-127(.b)            →p_port_cnt
  711.                    32768+(0-32767)(.w)
  712.                    (ただしDest.Note≧$80のときのみ)
  713. Step Time(.v)    ステップタイム:1-127(.b) | 32768+(1-32767)(.w)     →p_step_time
  714. Gate Time(.v)    ゲートタイム:$8000(.w)=tie            →k_gate_time
  715.                  0-127(.b) | 32768+(128-32767)(.w)
  716. Velocity(.b)    ベロシティ:0-127 | 128=use default,        →p_velo
  717.                129~191,192,193~255は-63~-1,0,1~+63に対応する
  718. 合計6-11bytes
  719. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  720. ■$90~$9f
  721. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  722. ●音量(MML V,@V)
  723. $90(.b)        ZMD
  724. Volume(.b)    音量値:0-127        128段階指定時        →p_vol
  725.                $80+(0~16)    16段階指定時
  726. 合計2bytes
  727. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  728. ●相対音量(MML _~)
  729. $91(.b)    ZMD
  730. Volume(.b)    相対音量値:-128~127
  731. 合計2bytes
  732. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  733. ●相対音量2
  734. $92(.b)        ZMD
  735. Volume(.b)    相対音量値:-128~127                →p_vol
  736. 合計2bytes
  737.  
  738. ($91との違い:$91は必ず絶対音量次元で相対音量を設定するが、$92は直前の音量
  739. コマンド(128/16段階)の次元で相対音量を設定する)
  740. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  741. ●ベロシティ(MML U/@U)
  742. $93(.b)
  743. Velocity(.b)    ベロシティ値:0-127        128段階指定時    →p_velo
  744.                  $80+(0~16)    16段階指定時
  745. 合計2bytes
  746. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  747. ●相対ベロシティ(MML U±/@U±)
  748. $94(.b)    ZMD
  749. Velocity(.b)    相対ベロシティ値:-128~127            →p_velo
  750. 合計2bytes
  751. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  752. ●ピッチモジュレーション・モード(MML M)
  753. $95(.b)        ZMD
  754. pmod mode(.b)    モード値:-1=normal  0=FM  1=MIDI        →p_pmod_mode
  755. 合計2bytes
  756. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  757. ●ピッチモジュレーション・スイッチ(MML @M)
  758. $96(.b)        ZMD
  759. Switch(.b)    スイッチ:[0]=off  $ff=1/8mode            →p_pmod_sw
  760.              $01=optional 8 point mode  $02=on by previous mode
  761. 合計2bytes
  762. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  763. ●ピッチモジュレーション同期設定(MML H)
  764. $97(.b)        ZMD
  765. Sync Mode(.b)    同期モード                    →p_pmod_flg
  766.         d7:キーオン時に波形初期化    0:OFF [1]:ON
  767.         d6:タイ時に波形初期化        [0]:OFF 1:ON
  768.         d5:休符時に波形初期化        [0]:OFF 1:ON
  769.         d4:波形をキーオン毎に更新    [0]:NO  1:YES
  770.         d3:波形を休符毎に更新        [0]:NO    1:YES
  771. Delay(.w)    同期ディレイ:1~65535(0の場合は無指定を意味する)→p_pmod_syncnt
  772. 合計4bytes
  773. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  774. ●オートベンド・スイッチ(MML [BEND.SWITCH])
  775. $98(.b)        ZMD
  776. Switch(.b)    スイッチ:[0]=off  1=on                →p_bend_sw
  777. 合計2bytes
  778. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  779. ●アフタータッチシーケンス・スイッチ(MML [AFTERTOUCH.SWITCH])
  780. $99(.b)        ZMD
  781. Switch(.b)    スイッチ:[0]=off  $ff=1/8mode            →p_aftc_sw
  782.              $01=optional 8 point mode  $02=on by previous mode
  783. 合計2bytes
  784. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  785. ●アフタータッチシーケンス同期設定(MML [AFTERTOUCH.SYNC])
  786. $9a(.b)        ZMD
  787. Sync Mode(.b)    同期モード                    →p_aftc_flg
  788.         d7:キーオン時に波形初期化    0:OFF [1]:ON
  789.         d6:タイ時に波形初期化        [0]:OFF 1:ON
  790.         d5:休符時に波形初期化        [0]:OFF 1:ON
  791. Delay(.w)    同期ディレイ:1~65535(0の場合は無指定を意味する)→p_aftc_syncnt
  792. 合計4bytes
  793. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  794. ●エンハンスドベロシティシーケンス・スイッチ(MML [VELOCITY.SWITCH])
  795. $9b(.b)        ZMD
  796. Switch(.b)    スイッチ:[0]=off        →p_arcc_sw+p_vseq_param
  797.              $01=optional 8 point mode, $02=on by previous mode
  798. 合計2bytes
  799. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  800. ●アゴーギク・スイッチ(MML [AGOGIK.SWITCH])
  801. $9c(.b)        ZMD
  802. switch(.b)    スイッチ:[0]=off  $ff=1/8mode    →(agogik_work_ptr)+p_pmod_sw
  803.              $01=optional 8 point mode  $02=on by previous mode
  804. 合計2bytes
  805. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  806. ●アゴーギク同期設定(MML [AGOGIK.SYNC])
  807. $9d(.b)        ZMD
  808. Sync Mode(.b)    同期モード                →p_agogik_flg
  809.         d7:キーオン時に波形初期化    [0]:OFF 1:ON
  810.         d6:タイ時に波形初期化        [0]:OFF 1:ON
  811.         d5:休符時に波形初期化        [0]:OFF 1:ON
  812.         d4:波形をキーオン毎に更新    [0]:NO  1:YES
  813.         d3:波形を休符毎に更新        [0]:NO    1:YES
  814.         d2:小節線毎に更新        [0]:NO    1:YES
  815. Delay(.w)    同期ディレイ:1~65535(0の場合は無指定を意味する)→p_agogik_count
  816. 合計4bytes
  817. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  818. ●タイ・モード(MML @J)
  819. $9e(.b)        ZMD
  820. Tie Mode    タイモード:(0=normal  1=special)    →d3 of p_md_flg
  821. 合計2bytes
  822. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  823. ●PCM再生モード(MML [PCM_MODE])
  824. $9f(.b)        ZMD
  825. PCM mode    PCMモード:(0=tone mode  1=timbre mode    →d2 of p_md_flg
  826. 合計2bytes
  827. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  828. ■$a0~$af
  829. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  830. ●パン 絶対指定(MML P/@P)
  831. $a0(.b)        ZMD
  832. Pan(.b)        パンポット:(0-127:L~M~R,128:off)        →p_pan
  833. 合計2bytes
  834. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  835. ●パン 相対指定(MML P/@P)
  836. $a1(.b)        ZMD
  837. Pan(.b)        相対パンポット値:-128~127            →p_pan
  838. 合計2bytes
  839. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  840. ●スロットマスク(MML [SLOT_SEPARRATION])
  841. $a2(.b)        ZMD
  842. Mode(.b)    モード:%0000000~%1111000            →p_om
  843.                d3:OP1,d4:OP2,d5:OP3,d6:OP4
  844.                bit=1:off,bit=0:on
  845. 合計2bytes
  846. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  847. ●ダンパーペダル(MML @D)
  848. $a3(.b)        ZMD
  849. Damper(.b)    ダンパー値:0-63=off, 64-127=on            →p_damper
  850. 合計2bytes
  851. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  852. ●ノン・オフ・モード(MML @R)
  853. $a4(.b)    ZMD
  854. Mode(.b)    モード:$00=通常, $80=ノートオフなし    →p_track_mode
  855. 合計2bytes
  856. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  857. ●ベンドレンジ変更(MML G)
  858. $a5(.b)        ZMD
  859. Range(.b)    レンジ値:0-127    [12]                →p_@b_range
  860. 合計2bytes
  861. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  862. ●周波数変更(MML @F)
  863. $a6(.b)        ZMD
  864. Frq(.b)        周波数番号:0-6    [4]                →p_frq
  865. 合計2bytes
  866. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  867. ●チャンネルプレッシャー
  868. $a8(.b)        ZMD
  869. Pressure(.b)    チャンネルプレッシャー値:0-127
  870. 合計2bytes
  871. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  872. ●相対チャンネルプレッシャー
  873. $a9(.b)        ZMD
  874. Pressure(.b)    相対チャンネルプレッシャー値:-128~127
  875.         (相対演算はベロシティと行われるが演算結果はp_veloには
  876.          反映されない)
  877. 合計2bytes
  878. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  879. ●キートランスポーズ(MML K)
  880. $ab(.b)        ZMD
  881. Value(.b)    キートランスポーズ値:-128~+127
  882. 合計2bytes
  883. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  884. ●FM/PCMトラックボイスリザーブ(MML [VOICE_RESERVE])
  885. $ac(.b)        ZMD
  886. n of voices(.b)    ボイスリザーブ値:0-255=1~256        →p_voice_rsv
  887. 合計2bytes
  888. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  889. ●ベロシティ同期設定(MML [VELOCITY.SYNC])
  890. $ad(.b)        ZMD
  891. Sync Mode(.b)    同期モード            →p_arcc_flg+p_vseq_param
  892.         d7:小節線同期                [0]:off 1:on
  893.         d6:ベロシティが指定されているケースでも [0]:off 1:on
  894.            ダミーで割り当てるか
  895.         d5:休符割り当て                [0]:off 1:on
  896. Delay(.w)    同期ディレイ:1~65535        →p_arcc_syncnt+p_vseq_param
  897.                 (0の場合は無指定を意味する)
  898. 合計4bytes
  899. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  900. ■$b0~$bf
  901. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  902. ●ピッチモジュレーション波形セレクト(MML S)
  903. $b0(.b)        ZMD
  904. Wave Form(.w)    波形番号:0-7=プリセット波形        →p_pmod_wf
  905.                  (0:鋸歯波  1:矩形波  2:三角波  3:ワンショット鋸歯波
  906.               4:ランダム波)
  907.              $8000+0~32767=ユーザー波形(波形メモリ)
  908. 合計3bytes
  909. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  910. ●アゴーギク波形セレクト(MML [AGOGIK.WAVEFORM])
  911. $b1(.b)        ZMD
  912. Wave Form(.w)    波形番号:0-7=プリセット波形    →(agogik_work_ptr)+p_pmod_wf
  913.              $8000+0~32767=ユーザー波形(波形メモリ)
  914. 合計3bytes
  915. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  916. ●V2コンパチ・音長0ノート(発音のみ行う)
  917. $b2(.b)        ZMD
  918. Note(.b)    ノート番号:0-127
  919. Velocity(.b)    ベロシティ:0-127, 128=use default,        →p_velo
  920.                129~191,192,193~255は-63~-1,0,1~63に対応する
  921. 合計3bytes
  922. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  923. ●ARCC・スイッチ(MML @A)
  924. $b3(.b)        ZMD
  925. Arcc No(.b)    ARCC番号:(0-3)×2
  926. Switch(.b)    スイッチ:[0]=off  $ff=1/8mode  $01=optional 8 point mode
  927.              $02=on by previous mode
  928.                 →p_arcc_sw+p_arcc_param+(0-3)*trwk_size
  929. 合計3bytes
  930. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  931. ●ARCC・モード(MML M)
  932. $b4(.b)        ZMD
  933. Arcc No(.b)    ARCC番号:(0-3)×2
  934. Arcc Mode(.b)    モード:$ff=normal  $01=extended mode    →p_arcc_mode
  935. 合計3bytes
  936. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  937. ●ARCC同期設定(MML H)
  938. $b5(.b)        ZMD
  939. Arcc No(.b)    ARCC番号:(0-3)×2
  940. Sync Mode(.b)    同期モード                    →p_arcc_flg
  941.         d7:キーオン時に波形初期化    0:OFF [1]:ON
  942.         d6:タイ時に波形初期化        [0]:OFF 1:ON
  943.         d5:休符時に波形初期化        [0]:OFF 1:ON
  944.         d4:波形をキーオン毎に更新    [0]:NO  1:YES
  945.         d3:波形を休符毎に更新        [0]:NO    1:YES
  946. Delay(.w)    同期カウント:1~65535(0の場合は無指定を意味する)→p_arcc_syncnt
  947. 合計5bytes
  948. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  949. ●OPMレジスタ書き込み(MML [OPM])
  950. $b6(.b)        ZMD
  951. Reg.Number(.b)    レジスタ番号:$80+04:NFRQ $80+05:NE  $80+06:LFRQ $80+07:PMD
  952.                  $80+08:AMD  $80+09:WF  $80+10:CON  $80+11:FB
  953.                  $80+12:PAN  $80+13:AMS  $80+14:PMS
  954. または
  955.                  (0:OP1,1:OP3,2:OP2,3:OP4)*16
  956.                  +(0:MUL,1:DT1,2:TL,3:AR,4:KS,5:1DR,6:AMS-EN,
  957.                    7:2DR,8:DT2,9:RR,10:1DL)
  958. Data(.b)    データ:0-255
  959. 合計3bytes
  960. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  961. ●相対OPMレジスタ書き込み(MML [OPM])
  962. $b7(.b)        ZMD
  963. Reg.Number(.b)    レジスタ番号:$80+04:NFRQ $80+05:NE  $80+06:LFRQ $80+07:PMD
  964.                  $80+08:AMD  $80+09:WF  $80+10:CON  $80+11:FB
  965.                  $80+12:PAN  $80+13:AMS  $80+14:PMS
  966. または
  967.                  (0:OP1,1:OP3,2:OP2,3:OP4)*16
  968.                  +(0:MUL,1:DT1,2:TL,3:AR,4:KS,5:1DR,6:AMS-EN,
  969.                    7:2DR,8:DT2,9:RR,10:1DL)
  970. Data(.b)    データ:-128~127
  971. 合計3bytes
  972. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  973. ●ディチューン@B range(MML @B)
  974. $b8(.b)        ZMD
  975. Detune(.w)    ディチューン:-8192~8191            →p_detune
  976. 合計3bytes
  977. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  978. ●ディチューン@K range(MML @K)
  979. $b9(.b)        ZMD
  980. Detune(.w)    ディチューン:-7680~7680            →p_detune
  981. 合計3bytes
  982. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  983. ●相対ディチューン@B range(MML @B±)
  984. $ba(.b)        ZMD
  985. Detune(.w)    ディチューン:-8192~8191            →p_detune
  986. 合計3bytes
  987. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  988. ●相対ディチューン@K range(MML @K±)
  989. $bb(.b)        ZMD
  990. Detune(.w)    ディチューン:-7680~7680            →p_detune
  991. 合計3bytes
  992. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  993. ●レジスタ書き込み(コントロールチェンジ設定)(MML Y)
  994. $bc(.b)        ZMD
  995. Register(.b)    レジスタ:0-255
  996. Data(.b)    データ:0-255
  997. 合計3bytes
  998. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  999. ●強制再演奏(MML Jn)
  1000. $bd(.b)        ZMD
  1001. Track(.w)    トラック番号:0-65534
  1002. 合計3bytes
  1003. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1004. ●トラック同期(MML Wn)
  1005. $be(.b)        ZMD
  1006. Track(.w)    トラック番号:0-65534
  1007. 合計3bytes
  1008. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1009. ●Q/@Qコマンド
  1010. $bf(.b)        ZMD
  1011. Q/@Q value(.w)    Q/@Q値:0-256     ゲートタイムは (step*Q)/256 で与えられる
  1012.                -1~-32768:@Q ゲートタイムは step+@Q で与えられる
  1013.                                 →p_Q_gate
  1014. 合計3bytes
  1015. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1016. ■$c0~$cf
  1017. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1018. ●ポリフォニックプレッシャー(MML [POLYPHONIC PRESSURE])
  1019. $c0(.b)        ZMD
  1020. Note Number(.b)    ノート番号:0-127=プレッシャー値は絶対指定
  1021.                128+(0-127)=プレッシャー値は相対指定 
  1022. Pressure(.b)    プレッシャー値:0-127    
  1023.                    -127~+127(相対演算はベロシティと行われるが
  1024.                     演算結果はp_veloには反映されない)
  1025. 合計3bytes
  1026. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1027. ●テンポ(タイマー値)(MML @T)
  1028. $c1(.b)        ZMD
  1029. Timer Value(.w)    タイマ値:0-65535        →timer_value,m_tmp_buf
  1030. 合計3bytes
  1031. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1032. ●相対テンポ(タイマー値)(MML @T)
  1033. $c2(.b)    ZMD
  1034. Timer Value(.w)    相対タイマ値:-32768~32767    →timer_value,m_tmp_buf
  1035. 合計3bytes
  1036. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1037. ●テンポ(MML T)
  1038. $c3(.b)        ZMD
  1039. Tempo Value(.w)    テンポ:0-65535            →timer_value,m_tmp_buf
  1040. 合計3bytes
  1041. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1042. ●相対テンポ(MML T)
  1043. $c4(.b)        ZMD
  1044. Tempo Value(.w)    相対テンポ値:-32768~32767    →timer_value,m_tmp_buf
  1045. 合計3bytes
  1046. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1047. ●シーケンスコマンド(MML [D.C.] [DO] [!] [@] [KEY] [METER])
  1048. $c5(.b)        ZMD
  1049. func no.(.b)    0:D.C.  1:DO  2:!  3:@  4:KEY  5:METER
  1050. n of Param(.b)    後続パラメータ数:0-255
  1051. Params(.b)    パラメータ群(n of Params(.b)の数だけ続く)
  1052. 合計3-?bytes
  1053. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1054. ●音色バンク切り換え(MML I)
  1055. $c6(.b)        ZMD
  1056. Bank MSB(.b)    バンク上位バイト:0-127    (負値の場合は無指定)
  1057. Bank LSB(.b)    バンク下位バイト:0-127    (負値の場合は無指定)
  1058. 合計3bytes
  1059. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1060. 音色切り換え(MML @)
  1061. $c7(.b)            ZMD
  1062. Timbre Number(.w)    音色番号:0-32767            →p_pgm
  1063. 合計3bytes
  1064. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1065. ●音色切り換え2(MML [TIMBRE])
  1066. $c8(.b)            ZMD
  1067. Timbre Number(.w)    音色番号:0-32767            →p_pgm
  1068. 合計3bytes
  1069. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1070. ●ARCC波形セレクト(MML S)
  1071. $c9(.b)        ZMD
  1072. Arcc No(.b)    ARCC番号:(0-3)×2
  1073. Wave Form(.w)    波形番号:0-7=プリセット波形        →p_arcc_wf
  1074.                  (0:鋸歯波  1:矩形波  2:三角波  3:ワンショット鋸歯波
  1075.               4:ランダム波)
  1076.              $8000+0~32767=ユーザー波形(波形メモリ)
  1077. 合計4bytes
  1078. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1079. ●楽器ID設定(MML @I)
  1080. $ca(.b)        ZMD
  1081. Maker(.b)    メーカーID:0-127    (負値の場合は無指定)    →p_maker
  1082. Device(.b)    デバイスID:0-127    (負値の場合は無指定)    →p_device
  1083. Module(.b)    モジュールID:0-127    (負値の場合は無指定)    →p_module
  1084. 合計4bytes
  1085. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1086. ●小節ジャンプ(MML [JUMP])
  1087. $cb(.b)        ZMD
  1088. Measure No.(.l)    小説番号:0~4294967295
  1089. 合計5bytes
  1090. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1091. ●チャンネル・アサイン(MML N,@N,[CH_ASSIGN],[ASSIGN])
  1092. $cc(.b)        ZMD
  1093. Device-ID(.w)    音源ID:(FM=0,(AD)PCM=1,MIDI1=$8000,MIDI2=$8001,    →p_type
  1094.             MIDI3=$8002,MIDI4=$8003)
  1095. Channel(.w)    チャンネル番号:0-32767                →p_ch
  1096. 合計5bytes
  1097. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1098. ●リピート開始(MML |:)
  1099. $cd(.b)            ZMD
  1100. Repeat Count(.w)    繰り返し回数:(0-[1]-65534:1-[2]-65535)
  1101. Repeat Work(.w)        $0000.w    ワーク
  1102. 合計5bytes
  1103. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1104. ●リピート終端(MML :|)
  1105. $ce(.b)        ZMD
  1106. Offset(.l)    リピート開始ZMD($cd)のRepeat Count(.w)までのオフセット値
  1107. 合計5bytes
  1108. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1109. ●NRPN(MML @Y)
  1110. $cf(.b)        ZMD
  1111. Address H(.b)    アドレス上位:0-127
  1112. Address L(.b)    アドレス下位:0-127
  1113. Data H(.b)    データ上位:0-127(128以上の値を設定した場合は省略となみされる)
  1114. Data L(.b)    データ下位:0-127(128以上の値を設定した場合は省略となみされる)
  1115. 合計5bytes
  1116. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1117. ■$d0~$df
  1118. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1119. ●SEGNO(MML [SEGNO])
  1120. $d0(.b)        ZMD
  1121. Offset(.l)    [D.S.]のD.S.Flag(.b)までのオフセットアドレス
  1122.         (0の場合はコマンド無視)
  1123. 合計5bytes
  1124. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1125. ●CODA(MML [CODA])
  1126. $d1(.b)        ZMD
  1127. Offset(.l)    [TOCODA]のCoda Flag(.b)までのオフセットアドレス
  1128. 合計5bytes
  1129. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1130. ●スキップZMD
  1131. $d2(.b)        ZMD
  1132. Mode(.b)    モード:0=offset 1=absolute
  1133. Offset(.l)    Mode(.b)=0の場合は相対アドレスジャンプ
  1134.         Mode(.b)=1の場合は絶対アドレスに相当する
  1135. 合計6bytes
  1136. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1137. ●D.S.(MML [D.S.])
  1138. $d3(.b)        ZMD
  1139. D.S.Flag(.b)    D.S.フラグ
  1140.         d7:segno設定があったか(1:done),
  1141.         d6:d.s.処理をしたか(1:done)
  1142. Offset(.l)    [SEGNO]のZMDの次のZMDのアドレスまでのオフセット
  1143.                     →D.S.処理をしたらp_fine_flgをセット
  1144. 合計6bytes
  1145. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1146. ●TO CODA(MML [TOCODA])
  1147. $d4(.b)        ZMD
  1148. Coda Flag(.b)    CODAフラグ
  1149.         d7:coda設定があったか(1:done)
  1150.         d6:tocoda処理をしたか(1:done)
  1151. Offset(.l)    [CODA]のZMDの次のZMDのアドレスまでのオフセット
  1152.         (0の場合はコマンド無視)
  1153. 合計6bytes
  1154. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1155. ●GOSUB(MML [GOSUB])
  1156. $d5(.b)        ZMD
  1157. Track No.(.w)    トラック番号:0-65534(ただし65535=パターントラック)
  1158. Offset(.l)    飛び先オフセットアドレス
  1159. 合計7bytes
  1160. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1161. ●チャンネル・フェーダー(MML [CH_FADER])
  1162. $d6(.b)        ZMD
  1163. Device-ID(.w)    音源ID:(FM=0,(AD)PCM=1,MIDI1=$8000,MIDI2=$8001,
  1164.             MIDI3=$8002,MIDI4=$8003,
  1165.             カレントMIDI=$7ffd,
  1166.             -1=全音源が操作対象となる)
  1167. Channel(.w)    チャンネル番号:0-32767,-1=全チャンネル
  1168. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1169.         d0:Speed
  1170.         d1:Start Level
  1171.         d2:End Level
  1172. Speed(.w)    移動速度:0~65535(0=移動しない)
  1173. Start Level(.b)    開始レベル:0-128
  1174. End Level(.b)    終了レベル:0-128
  1175. 合計6-9bytes
  1176.  
  1177. または
  1178.  
  1179. $d6(.b)        ZMD
  1180. $7fff(.w)    固定値
  1181. Track No.(.w)    トラック番号:0-65534,-1=全トラック
  1182. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1183.         d0:Speed
  1184.         d1:Start Level
  1185.         d2:End Level
  1186. Speed(.w)    移動速度:0~65535(0=移動しない)
  1187. Start Level(.b)    開始レベル:0-128
  1188. End Level(.b)    終了レベル:0-128
  1189. 合計6-9bytes
  1190.  
  1191. または
  1192.  
  1193. $d6(.b)        ZMD
  1194. $7ffe(.w)    固定値
  1195. Track ID.(.w)    トラック識別子:0=現在のトラック  -1=全トラック
  1196. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1197.         d0:Speed
  1198.         d1:Start Level
  1199.         d2:End Level
  1200. Speed(.w)    移動速度:0~65535(0=移動しない)
  1201. Start Level(.b)    開始レベル:0-128
  1202. End Level(.b)    終了レベル:0-128
  1203. 合計6-9bytes
  1204. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1205. ●マスター・フェーダー(MML [MASTER_FADER])
  1206. $d7(.b)        ZMD
  1207. Device-ID(.w)    音源ID:(FM=0,(AD)PCM=1,MIDI1=$8000,MIDI2=$8001,
  1208.             MIDI3=$8002,MIDI4=$8003,
  1209.             -1=全音源が操作対象となる)
  1210. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1211.         d0:Speed
  1212.         d1:Start Level
  1213.         d2:End Level
  1214. Speed(.w)    移動速度:0-65535(0=移動しない)
  1215. Start Level(.b)    開始レベル:0-128
  1216. End level(.b)    終了レベル:0-128
  1217. 合計4-7bytes
  1218. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1219. ●リピートスキップ(MML |n)
  1220. $d8(.b)        ZMD
  1221. Count(.w)    演奏許可繰り返し回数:0-65534(1-65535に対応)
  1222. Offset(.l)    リピート開始のZMDのRepeat Work(.w)までのオフセットアドレス
  1223. Offset(.l)    リピート終端のZMDの外までのオフセットアドレス
  1224. 合計11bytes
  1225. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1226. ●リピートスキップ2(MML |)
  1227. $d9(.b)        ZMD
  1228. Offset(.l)    リピート開始のZMDのRepeat Work(.w)までのオフセットアドレス
  1229. Offset(.l)    次のリピートスキップのZMDへの、または次のリピート終端のZMD
  1230.         までのオフセットアドレス
  1231. 合計9bytes
  1232. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1233. ●ピッチモジュレーション・振幅増加/減衰(MML [VIBRATO.DEEPEN])
  1234. $da(.b)        ZMD
  1235. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1236.         d7:増減モード        [0]:OFF    1:ON
  1237.         d6:Speed        0:パラメータ有り 1:なし
  1238.         d5:Depth Accelarator    0:パラメータ有り 1:なし
  1239.         d4:Repeat Time        0:パラメータ有り 1:なし
  1240. Speed(.v)    増減速度:0-127(.b), 32768+(0-32767)(.w)
  1241. Depth Acc(.w)    増減加速度:-32768~32767
  1242. Repeat Time(.v)    増減繰り返し回数:0-127(.b), 32768+(0-32767)(.w)
  1243.                  0は無限回に相当する
  1244. 合計5-8bytes
  1245. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1246. ●ARCC・振幅増加/減衰(MML [ARCCn.DEEPEN])
  1247. $db(.b)        ZMD
  1248. arcc no(.b)    (0-3)×2
  1249. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1250.         d7:増減モード        [0]:OFF    1:ON
  1251.         d6:Speed        0:パラメータ有り 1:なし
  1252.         d5:Depth Accelarator    0:パラメータ有り 1:なし
  1253.         d4:Repeat Time        0:パラメータ有り 1:なし
  1254. Speed(.v)    増減速度:0-127(.b), 32768+(0-32767)(.w)
  1255. Depth Acc(.w)    増減加速度:-32768~32767
  1256. Repeat Time(.v)    増減繰り返し回数:0-127(.b), 32768+(0-32767)(.w)
  1257.                  0は無限回に相当する
  1258. 合計6-9bytes
  1259. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1260. ●ベロシティ・振幅増加/減衰(MML [VELOCITY.DEEPEN])
  1261. $dc(.b)        ZMD
  1262. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1263.         d7:増減モード        [0]:OFF    1:ON
  1264.         d6:Speed        0:パラメータ有り 1:なし
  1265.         d5:Depth Accelarator    0:パラメータ有り 1:なし
  1266.         d4:Repeat Time        0:パラメータ有り 1:なし
  1267. Speed(.v)    増減速度:0-127(.b), 32768+(0-32767)(.w)
  1268. Depth Acc(.b)    増減加速度:-128~127
  1269. Repeat Time(.v)    増減繰り返し回数:0-127(.b), 32768+(0-32767)(.w)
  1270.                  0は無限回に相当する
  1271. 合計5-7bytes
  1272. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1273. ●アゴーギク・振幅増加/減衰(MML [AGOGIK.DEEPEN])
  1274. $dd(.b)        ZMD
  1275. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1276.         d7:増減モード        [0]:OFF    1:ON
  1277.         d6:Speed        0:パラメータ有り 1:なし
  1278.         d5:Depth Accelarator    0:パラメータ有り 1:なし
  1279.         d4:Repeat Time        0:パラメータ有り 1:なし
  1280. Speed(.v)    増減速度:0-127(.b), 32768+(0-32767)(.w)
  1281. Depth Acc(.w)    増減加速度:-32768~32767
  1282. Repeat Time(.v)    増減繰り返し回数:0-127(.b), 32768+(0-32767)(.w)
  1283.                  0は無限回に相当する
  1284. 合計6-8bytes
  1285. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1286. ●音色スプリット([TIMBRE_SPLIT],[PROGRAM_SPLIT])
  1287. $de(.b)                ZMD
  1288. n of Param(.b)            スイッチフラグ/パラメータの個数
  1289.                 d7:スイッチ(0:OFF,1:ON)
  1290.                 d0-d6:パラメータの数:0-8
  1291. {
  1292. Range Start Note No.(.b)    スプリット開始ノート番号:0-127
  1293. Range End Note No.(.b)         スプリット終端ノート番号:0-127
  1294. Bank No.(.w)             音色バンク:0-16383(MIDI)/0-255(FM,ADPCM)
  1295. Timbre No.(.w)             音色番号:0-127 or 0-32767
  1296. }×n of Param(.b)        n of Param(.b)回パラメータ群が後続する
  1297. 合計2-50bytes
  1298. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1299. ●エンハンスドベロシティシーケンス波形セレクト(MML [VELOCITY.WAVEFORM])
  1300. $df(.b)            ZMD
  1301. omt(.b)            省略フラグ(bit=1で対応パラメータが後続する)
  1302.             d0:Wave Form
  1303.             d1:Origin Value
  1304.             d1:Phase Mode
  1305. Wave Form(.w)        波形番号:0-7=プリセット波形
  1306.                      (0:鋸歯波  1:矩形波  2:三角波
  1307.                   3:ワンショット鋸歯波 4:ランダム波)
  1308.                   $8000+0~32767=ユーザー波形(波形メモリ)
  1309.                         →p_arcc_wf+p_vseq_param
  1310. Origin Value(.b)    波形の基準値:0-127
  1311. Phase Mode(.b)        位相モード:0,-1(0:正位相,-1:逆位相)
  1312. 合計3~6bytes
  1313. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1314. ■$e0~$ef
  1315. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1316. ●オートベンド@B range(MML @B)
  1317. $e0(.b)            ZMD
  1318. omt(.b)            省略フラグ(bit=1で対応パラメータが後続する)
  1319.             d7:Start Detune
  1320.             d6:Destination Detune
  1321.             d5:Delay
  1322.             d4:Tail/Port.Time
  1323.             (omt(.b)=0のときスイッチオフ)
  1324. Start detune(.w)    開始ディチューン:-32768~32767        →p_detune
  1325. Destination detune(.w)    目的ディチューン:-32768~32767        →p_bend_dst
  1326. Delay(.w)        ディレイ:-32768~32767            →p_bend_dly/p_port_cnt
  1327. Tail/Port.Time(.w)    ベンド時間/持続時間:            →p_bend_tail
  1328.             ベンド時間:1-32767
  1329.             無指定:0
  1330.             持続時間:-1~-32768
  1331. 合計2-10bytes
  1332. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1333. ●オートベンド@K range(MML @K)
  1334. $e1(.b)            ZMD
  1335. omt(.b)            省略フラグ(bit=1で対応パラメータが後続する)
  1336.             d7:Start Detune
  1337.             d6:Destination Detune
  1338.             d5:Delay
  1339.             d4:Tail/Port.Time
  1340.             (omt(.b)=0のときスイッチオフ)
  1341. Start detune(.w)    開始ディチューン:-32768~32767        →p_detune
  1342. Destination detune(.w)    目的ディチューン:-32768~32767        →p_bend_dst
  1343. Delay(.w)        ディレイ:-32768~32767            →p_bend_dly/p_port_cnt
  1344. Tail/Port.Time(.w)    ベンド時間/持続時間:            →p_bend_tail
  1345.             ベンド時間:1-32767
  1346.             無指定:0
  1347.             持続時間:-1~-32768
  1348. 合計2-10bytes
  1349. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1350. ●ピッチモジュレーション振幅(1/8,optional 8point)(MML @M,[VIBRATO.DEPTH])
  1351. $e2(.b)        ZMD
  1352. Mode(.b)    モード:0=無指定,1=OPTIONAL,-1=1/8 MODE,2=以前のモードでON
  1353. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1354.         d0:1番目の振幅値に対応
  1355.         d1:2番目の振幅値に対応
  1356.         d2:3番目の振幅値に対応
  1357.         d3:4番目の振幅値に対応
  1358.         d4:5番目の振幅値に対応
  1359.         d5:6番目の振幅値に対応
  1360.         d6:7番目の振幅値に対応
  1361.         d7:8番目の振幅値に対応
  1362.         omt(.b)=0のときがスイッチオフの指定となる
  1363. Depth(.w)*(1-8)    振幅:-32768~32767            →p_pmod_dpt_tbl
  1364. 合計5-19bytes
  1365. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1366. ●ピッチモジュレーション・スピード (8point)(MML @S,[VIBRATO.SPEED])
  1367. $e3(.b)        ZMD
  1368. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1369.         d0:1番目の速度値に対応
  1370.         d1:2番目の速度値に対応
  1371.         d2:3番目の速度値に対応
  1372.         d3:4番目の速度値に対応
  1373.         d4:5番目の速度値に対応
  1374.         d5:6番目の速度値に対応
  1375.         d6:7番目の速度値に対応
  1376.         d7:8番目の速度値に対応
  1377.         omt(.b)=0はありえない
  1378. Speed(.w)*(1-8)    速度値:1-65535                →p_pmod_spd_tbl
  1379.                (0はエラー,値はMMLのパラメータで与えられたものを
  1380.             2倍したもの)
  1381. 合計4-18bytes
  1382. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1383. ●ピッチモジュレーション・ディレイ(8point)(MML @H,[VIBRATO.DELAY])
  1384. $e4(.b)        ZMD
  1385. omt(.w)        省略フラグ(bit=1で対応パラメータが後続する)
  1386.         d0:1番目のディレイ値に対応
  1387.         d1:2番目のディレイ値に対応
  1388.         d2:3番目のディレイ値に対応
  1389.         d3:4番目のディレイ値に対応
  1390.         d4:5番目のディレイ値に対応
  1391.         d5:6番目のディレイ値に対応
  1392.         d6:7番目のディレイ値に対応
  1393.         d7:8番目のディレイ値に対応
  1394.         d8:9番目のディレイ値に対応
  1395.         omt(.b)=0はありえない
  1396. Delay(.w)*(1-9)    ディレイ値:0-65535    →p_pmod_1st_dly~p_pmod_8st_tbl
  1397. 合計5-21bytes
  1398. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1399. ●ARCC振幅(1/8,optional 8point)(MML @A,[ARCCn.LEVEL])
  1400. $e5(.b)        ZMD
  1401. Arcc No(.b)    ARCC番号:(0-3)×2
  1402. Mode(.b)    モード:0=無指定,1=OPTIONAL,-1=1/8 MODE,2=以前のモードでON
  1403. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1404.         d0:1番目の振幅値に対応
  1405.         d1:2番目の振幅値に対応
  1406.         d2:3番目の振幅値に対応
  1407.         d3:4番目の振幅値に対応
  1408.         d4:5番目の振幅値に対応
  1409.         d5:6番目の振幅値に対応
  1410.         d6:7番目の振幅値に対応
  1411.         d7:8番目の振幅値に対応
  1412.         omt(.b)=0のときがスイッチオフの指定となる
  1413. Depth(.b)*(1-8)    振幅値:-128~127            →p_arcc_dpt_tbl
  1414. 合計5-12bytes
  1415. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1416. ●ARCCスピード(8point)(MML @S,[ARCCn,SPEED])
  1417. $e6(.b)        ZMD
  1418. Arcc No(.b)    ARCC番号:(0-3)×2
  1419. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1420.         d0:1番目の速度値に対応
  1421.         d1:2番目の速度値に対応
  1422.         d2:3番目の速度値に対応
  1423.         d3:4番目の速度値に対応
  1424.         d4:5番目の速度値に対応
  1425.         d5:6番目の速度値に対応
  1426.         d6:7番目の速度値に対応
  1427.         d7:8番目の速度値に対応
  1428.         omt(.b)=0はありえない
  1429. Speed(.w)*(1-8)    速度値:1-65535                →p_arcc_spd_tbl
  1430.                (0はエラー,値はMMLのパラメータで与えられたものを
  1431.             2倍したもの)
  1432. 合計5-19bytes
  1433. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1434. ●ARCCディレイ(8point)(MML @H,[ARCCn,DELAY])
  1435. $e7(.b)        ZMD
  1436. Arcc No(.b)    ARCC番号:(0-3)×2
  1437. omt(.w)        省略フラグ(bit=1で対応パラメータが後続する)
  1438.         d0:1番目のディレイ値に対応
  1439.         d1:2番目のディレイ値に対応
  1440.         d2:3番目のディレイ値に対応
  1441.         d3:4番目のディレイ値に対応
  1442.         d4:5番目のディレイ値に対応
  1443.         d5:6番目のディレイ値に対応
  1444.         d6:7番目のディレイ値に対応
  1445.         d7:8番目のディレイ値に対応
  1446.         d8:9番目のディレイ値に対応
  1447.         omt(.b)=0はありえない
  1448. Delay(.w)*(1-9)    ディレイ値:0-65535    →p_arcc_1st_dly~p_arcc_8st_tbl
  1449. 合計6-22bytes
  1450. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1451. ●アフタータッチシーケンス(1/8,optional 8point)(MML @Z,[AFTERTOUCH.LEVEL])
  1452. $e8(.b)        ZMD
  1453. Mode(.b)    モード:0=無指定,1=OPTIONAL,-1=1/8 MODE,2=以前のモードでON
  1454. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1455.         d0:1番目のアフタータッチ値に対応
  1456.         d1:2番目のアフタータッチ値に対応
  1457.         d2:3番目のアフタータッチ値に対応
  1458.         d3:4番目のアフタータッチ値に対応
  1459.         d4:5番目のアフタータッチ値に対応
  1460.         d5:6番目のアフタータッチ値に対応
  1461.         d6:7番目のアフタータッチ値に対応
  1462.         d7:8番目のアフタータッチ値に対応
  1463.         omt(.b)=0のときがスイッチオフの指定となる
  1464. Relative(.b)    相対値フラグ(bit=1で対応パラメータが相対指定であることを表す)
  1465.         d0:1番目のアフタータッチ値に対応
  1466.         d1:2番目のアフタータッチ値に対応
  1467.         d2:3番目のアフタータッチ値に対応
  1468.         d3:4番目のアフタータッチ値に対応
  1469.         d4:5番目のアフタータッチ値に対応
  1470.         d5:6番目のアフタータッチ値に対応
  1471.         d6:7番目のアフタータッチ値に対応
  1472.         d7:8番目のアフタータッチ値に対応
  1473. Level(.b)*(1-8)    アフタータッチ値:0-127            →p_aftc_tbl
  1474. 合計5-12bytes
  1475. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1476. ●アフタータッチシーケンス・ディレイ(8point)(MML [AFTERTOUCH.DELAY])
  1477. $e9(.b)        ZMD
  1478. omt(.w)        省略フラグ(bit=1で対応パラメータが後続する)
  1479.         d0:1番目のディレイ値に対応
  1480.         d1:2番目のディレイ値に対応
  1481.         d2:3番目のディレイ値に対応
  1482.         d3:4番目のディレイ値に対応
  1483.         d4:5番目のディレイ値に対応
  1484.         d5:6番目のディレイ値に対応
  1485.         d6:7番目のディレイ値に対応
  1486.         d7:8番目のディレイ値に対応
  1487.         d8:9番目のディレイ値に対応
  1488.         omt(.b)=0はありえない
  1489. Delay(.w)*(1-9)    ディレイ値:0-65535            →p_aftc_8st_tbl
  1490. 合計5-21bytes
  1491. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1492. ●エンハンスドベロシティ・シーケンス振幅(8point)(MML [VELOCITY.LEVEL])
  1493. $ea(.b)        ZMD
  1494. Mode(.b)    モード:0=無指定,1=OPTIONAL,2=以前のモードでON
  1495. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1496.         d0:1番目の振幅値に対応
  1497.         d1:2番目の振幅値に対応
  1498.         d2:3番目の振幅値に対応
  1499.         d3:4番目の振幅値に対応
  1500.         d4:5番目の振幅値に対応
  1501.         d5:6番目の振幅値に対応
  1502.         d6:7番目の振幅値に対応
  1503.         d7:8番目の振幅値に対応
  1504.         omt(.b)=0のときがスイッチオフの指定となる
  1505. Level(.b)*(1-8)    ベロシティ値:-128~127    →p_arcc_dpt_tbl+p_vseq_param
  1506. 合計4-11bytes
  1507. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1508. ●エンハンスドベロシティ・シーケンス・スピード(8point)(MML [VELOCITY.SPEED])
  1509. $eb(.b)        ZMD
  1510. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1511.         d0:1番目の速度値に対応
  1512.         d1:2番目の速度値に対応
  1513.         d2:3番目の速度値に対応
  1514.         d3:4番目の速度値に対応
  1515.         d4:5番目の速度値に対応
  1516.         d5:6番目の速度値に対応
  1517.         d6:7番目の速度値に対応
  1518.         d7:8番目の速度値に対応
  1519.         omt(.b)=0はありえない
  1520. Speed(.w)*(1-8)    速度値:1-65535            →p_arcc_spd_tbl+p_vseq_param
  1521.                (0はエラー,値はMMLのパラメータで与えられたものを
  1522.             2倍したもの)
  1523. 合計4-18bytes
  1524. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1525. ●エンハンスドベロシティ・シーケンス・ディレイ(8point)(MML [VELOCITY.DELAY])
  1526. $ec(.b)        ZMD
  1527. omt(.w)        省略フラグ(bit=1で対応パラメータが後続する)
  1528.         d0:1番目のディレイ値に対応
  1529.         d1:2番目のディレイ値に対応
  1530.         d2:3番目のディレイ値に対応
  1531.         d3:4番目のディレイ値に対応
  1532.         d4:5番目のディレイ値に対応
  1533.         d5:6番目のディレイ値に対応
  1534.         d6:7番目のディレイ値に対応
  1535.         d7:8番目のディレイ値に対応
  1536.         d8:9番目のディレイ値に対応
  1537.         omt(.b)=0はありえない
  1538. Delay(.w)*(1-9)    ディレイ値:0-65535        →p_arcc_8st_tbl+p_vseq_param
  1539. 合計5-21bytes
  1540. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1541. ●アゴーギク・振幅(1/8,optional 8point)(MML [AGOGIK.LEVEL])
  1542. $ed(.b)        ZMD
  1543. Mode(.b)    モード:0=無指定,1=OPTIONAL,-1=1/8 MODE,2=以前のモードでON
  1544. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1545.         d0:1番目の振幅値に対応
  1546.         d1:2番目の振幅値に対応
  1547.         d2:3番目の振幅値に対応
  1548.         d3:4番目の振幅値に対応
  1549.         d4:5番目の振幅値に対応
  1550.         d5:6番目の振幅値に対応
  1551.         d6:7番目の振幅値に対応
  1552.         d7:8番目の振幅値に対応
  1553.         omt(.b)=0のときがスイッチオフの指定となる
  1554. Depth(.w)*(1-8)    振幅:-32768~32767    →(agogik_work_ptr)+p_pmod_dpt_tbl
  1555. 合計5-19bytes
  1556. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1557. ●アゴーギク・スピード(8point)(MML [AGOGIK.SPEED])
  1558. $ee(.b)        ZMD
  1559. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1560.         d0:1番目の速度値に対応
  1561.         d1:2番目の速度値に対応
  1562.         d2:3番目の速度値に対応
  1563.         d3:4番目の速度値に対応
  1564.         d4:5番目の速度値に対応
  1565.         d5:6番目の速度値に対応
  1566.         d6:7番目の速度値に対応
  1567.         d7:8番目の速度値に対応
  1568.         omt(.b)=0はありえない
  1569. Speed(.w)*(1-8)    速度値:1-65535        →(agogik_work_ptr)+p_pmod_spd_tbl
  1570.                (0はエラー,値はMMLのパラメータで与えられたものを
  1571.             2倍したもの)
  1572. 合計4-18bytes
  1573. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1574. ●アゴーギク・ディレイ(8point)(MML [AGOGIK.DELAY])
  1575. $ef(.b)        ZMD
  1576. omt(.w)        省略フラグ(bit=1で対応パラメータが後続する)
  1577.         d0:1番目のディレイ値に対応
  1578.         d1:2番目のディレイ値に対応
  1579.         d2:3番目のディレイ値に対応
  1580.         d3:4番目のディレイ値に対応
  1581.         d4:5番目のディレイ値に対応
  1582.         d5:6番目のディレイ値に対応
  1583.         d6:7番目のディレイ値に対応
  1584.         d7:8番目のディレイ値に対応
  1585.         d8:9番目のディレイ値に対応
  1586.         omt(.b)=0はありえない
  1587. Delay(.w)*(1-9)    ディレイ値:0-65535    →(agogik_work_ptr)+p_pmod_8st_tbl
  1588. 合計5-21bytes
  1589. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1590. ■$f0~$ff
  1591. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1592. ●エフェクト設定(MML @E,[EFFECT])
  1593. ・通常(GS音源など)
  1594. $f0(.b)        ZMD
  1595. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1596.         d0:Effect1
  1597.         d1:Effect3
  1598.         d2:Effect4
  1599.         d3:Effect2
  1600.         d4:Effect5
  1601. Effect1(.b)    エフェクト1値:0-127    (GS:リバーブ)        →p_effect1
  1602. Effect3(.b)    エフェクト3値:0-127    (GS:コーラス)        →p_effect3
  1603. Effect4(.b)    エフェクト4値:0-127    (GS:ディレイ)        →p_effect4
  1604. Effect2(.b)    エフェクト2値:0-127                →p_effect2
  1605. Effect5(.b)    エフェクト5値:0-127                →p_effect5
  1606. 合計3-8bytes
  1607.  
  1608. ・MT32系の場合(MT32,CM64など)
  1609. $f0(.b)        ZMD
  1610. omt(.b)        省略フラグ(bit=1で対応パラメータが後続する)
  1611.         d0:PART No.
  1612.         d1:Switch
  1613. PART No.(.b)    パート番号:0~7 or 8(リズム)
  1614. Switch(.b)    エフェクトスイッチ:0=OFF,1=ON
  1615. 合計3-5bytes
  1616. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1617. ●ワーク直接書き換え(MML ?)
  1618. $f1(.b)            ZMD
  1619. Mode(.b)        下位4ビット:Data Offsetのデータサイズ
  1620.                     (0=1バイト 1=2バイト 3=4バイト)
  1621.             上位4ビット:Addr.Offsetのデータサイズ
  1622.                     (0=1バイト 1=2バイト 3=4バイト)
  1623. Addr.Offset(b/w/l)    -2147483648~2147483647
  1624. Data (b/w/l)        0~4294967295
  1625. 合計4-10bytes
  1626. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1627. ●相対ワーク直接書き換え(MML ?)
  1628. $f2(.b)            ZMD
  1629. Mode(.b)        下位4ビット:Data Offsetのデータサイズ
  1630.                     (0=1バイト 1=2バイト 3=4バイト)
  1631.             上位4ビット:Addr.Offsetのデータサイズ
  1632.                     (0=1バイト 1=2バイト 3=4バイト)
  1633. Addr.Offset(b/w/l)    -2147483648~2147483647
  1634. Data (b/w/l)        -2147483648~2147483647
  1635. 合計4-10bytes
  1636. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1637. ●エクスクルーシブ(MML X,[ROLAND_EXCLUSIVE],[YAMAHA_EXCLUSIVE])
  1638. $f3(.b)            ZMD
  1639. Exclusive Mode(.b)    0-255($ff:none $41:Roland $43:YAMAHA)
  1640. String Length(.b)    コメント文字列長:0-255
  1641. String Data...        コメント文字列        (No Endcode)
  1642. Data Length(.l)        データ長:1~4294967296
  1643. Data(.b)...        データ列:0-127
  1644.  
  1645. (exclusive mode=$41,$43のとき、チェックサムが自動送信されるため、データ列に
  1646. チェックサムが含まれる必要はない。)
  1647. 合計9~?bytes
  1648. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1649. ●MIDIデータ転送(MML @X,[MIDI_DATA])
  1650. $f4(.b)            ZMD
  1651. String Length(.b)    コメント文字列長:0-255
  1652. String Data...        コメント文字列        (No Endcode)
  1653. Data Length(.l)        データ長:1~4294967296
  1654. Data(.b)...        データ列:0-127
  1655. 合計7~?bytes
  1656. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1657. ●ループ終端(MML [LOOP])
  1658. $f5(.b)        ZMD
  1659. Offset(.l)*n    オフセットアドレス値(任意の個数続く,Offset(.l)=0が終端)
  1660.         オフセットアドレスで指し示される任意の番地を0で初期化する。
  1661. 合計5~?bytes
  1662. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1663. ●オートポルタメント(MML [AUTO_PORTAMENT])
  1664. $f6(.b)            ZMD
  1665. Mode(.b)        モード:0=OFF 1=ON -1=無指定    →p_port2_flg
  1666. omt(.b)            省略フラグ(bit=1で対応パラメータが後続する)
  1667.             d7:Delay
  1668.             d6:Tail/Port.Time
  1669. Delay(.w)        ディレイ値:-32768~32767    →p_port2_dly
  1670. Tail/Port.Time(.w)    ベンド時間/持続時間        →p_port2_tail
  1671.             ベンド時間:1-32767
  1672.             無指定:0
  1673.             持続時間:-1~-32768
  1674. 合計3-7bytes
  1675. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1676. ●ARCCアサイン(MML @C,[ARCCn.CONTROL])
  1677. $f7(.b)            ZMD
  1678. Arcc No(.b)        ARCC番号:(0-3)×2
  1679. omt(.b)            省略フラグ(bit=1で対応パラメータが後続する)
  1680.             d7:Ctrl Device
  1681.             d6:Reset Value
  1682.             d5:Origin Value
  1683.             d4:Phase Mode
  1684. Ctrl Device(.b)        MIDI:0-127    FM:$80=pan,$81=pms,$82=ams
  1685.                        $83=reserved,$84=amd,$85=pmd
  1686.                        $86=lfo spd,$87=noise spd
  1687. Reset Value(.b)        MIDI:0-127    FM:0-255
  1688. Origin Value(.b)    MIDI:0-127    FM:0-255
  1689. Phase Mode(.b)        位相モード:0,-1(0:正位相,-1:逆位相)
  1690. 合計4-6bytes
  1691. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1692. ●イベント制御(MML [EVENT])
  1693. $f8(.b)            ZMD
  1694. Size(.l)        後続データのサイズ(Category(.b)~Data終端まで)
  1695. Category(.b)        データの種類:(0=WORD,1=PICTURE,2=SOUND)
  1696. Object Class(.b)    データの具体的な種類
  1697. Dummy(.w)        将来拡張用
  1698. Data...            データ(データ構造はCategory,Classによって違う)
  1699. 合計?bytes
  1700.  
  1701. ・CategoryがWORDの時
  1702. $f8(.b)            ZMD
  1703. Size(.l)        後続データのサイズ
  1704.             0のときはData部は0で終了するファイルネーム文字列
  1705. Category(.b)        データの種類:0=WORD(歌詞)
  1706. Object Class(.b)    データの具体的な種類
  1707.             0=単なる文字列        (1~255:RESERVED)
  1708. Dummy(.w)        将来拡張用
  1709. Data...            データ列
  1710.             Size(.l)=0の場合は0(.b)を終端コードに持つ文字列が
  1711.             格納される。
  1712. 合計?bytes
  1713.  
  1714. ・CategoryがPICTUREの時
  1715. $f8(.b)            ZMD
  1716. Size(.l)        後続データのサイズ
  1717.             0のときはData部は0で終了するファイルネーム文字列
  1718. Category(.b)        データの種類:1=PICTURE(画像)
  1719. Object Class(.b)    データの具体的な種類
  1720.             0=PICファイル        (1~255:RESERVED)
  1721. Dummy(.w)        将来拡張用
  1722. Data...            データ列
  1723.             Size(.l)=0の場合は0(.b)を終端コードに持つ文字列が
  1724.             格納される。
  1725. 合計?bytes
  1726.  
  1727. CategoryがSOUNDの時
  1728. $f8(.b)            ZMD
  1729. Size(.l)        後続データのサイズ
  1730.             0のときはData部は0で終了するファイルネーム文字列
  1731. Category(.b)        データの種類:2=SOUND(音声)
  1732. Object Class(.b)    後続データのサイズデータの具体的な種類
  1733.             0=ADPCM(15kHz)        (1~255:RESERVED)
  1734. Dummy(.w)        将来拡張用
  1735. Data...            データ列
  1736.             Size(.l)=0の場合は0(.b)を終端コードに持つ文字列が
  1737.             格納される。
  1738. 合計?bytes
  1739. (カテゴリやクラスの新設追加は利用希望者がその都度ZMUSIC事務局に申請する)
  1740. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1741. ●リターン(GOSUB命令の次のアドレスへ帰還)
  1742. $f9(.b)        ZMD
  1743. 合計1byte
  1744. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1745. ●ダミーZMD
  1746. $fa(.b)        ZMD
  1747. 合計1byte
  1748. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1749. ●同期待ち(MML W,[SYNCHRONIZE])
  1750. $fb(.b)        ZMD
  1751. 合計1byte
  1752. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1753. ●FINE(MML [FINE])
  1754. $fc(.b)        ZMD
  1755. 合計1byte
  1756. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1757. ●強制キーオフ(MML `,[ALL_SOUND_OFF])
  1758. $fd(.b)        ZMD
  1759. 合計1byte
  1760. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1761. ●小節線(MML [----])
  1762. $fe(.b)        ZMD
  1763. 合計1byte
  1764. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1765. ●演奏データ終端
  1766. $ff(.b)        ZMD
  1767. 合計1byte
  1768. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1769.  
  1770.  
  1771. 12.8.  ZPDフォーマット
  1772.  
  1773.  
  1774.   ZPDは
  1775.  
  1776.     $1a,'ZmaDPcM'
  1777.  
  1778. のヘッダIDを先頭に以下のようなヘッダ構成を取る。
  1779.  
  1780.  各ヘッダ項目は各情報/データ領域までのオフセットを格納するもの(zpd_offset,
  1781.  
  1782. zpd_loop_startなど)と項目データそのものを格納するもの(zpd_note,zpd_typeなど)
  1783.  
  1784. の2タイプに分けられる。
  1785.  
  1786.  1つも(AD)PCMを含んでいない「空」のZPDであっても以下に示したヘッダブロ
  1787.  
  1788. ックは必ず存在する。
  1789. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1790. zpd_header:    ds.b    8    *$1a,'ZmaDPcM'
  1791.         dc.l    0    *Reserved
  1792.         ds.l    1    *登録ノート数(0は無しを表す)
  1793.  
  1794. zpd_note:    ds.w    1    *登録番号
  1795.                 *Tone:0-32767
  1796.                 *Timbre:$8000+(0-32767)
  1797. zpd_type:    ds.b    1    *登録タイプ(-1:ADPCM  1:16bitPCM
  1798.                 *         2:8bitPCM  0:No Data)
  1799. zpd_orig_key:    ds.b    1    *オリジナルキーのノート番号:0-127
  1800. zpd_attribute:    ds.b    1    *属性(d0=0:Normal,1:ポインタコピー)
  1801.         ds.b    1    *Reserved
  1802. zpd_offset:    ds.l    1    *オフセットアドレス値
  1803. zpd_size:    ds.l    1    *データ物理サイズ
  1804. zpd_loop_start:    ds.l    1    *ループ開始ポイント
  1805. zpd_loop_end:    ds.l    1    *ループ終了ポイント
  1806. zpd_loop_time:    ds.l    1    *ループ回数:0=∞,1~4294967295
  1807.         ds.l    1    *Reserved
  1808.         ds.l    1    *Reserved
  1809. zpd_tone_name:    ds.b    32    *トーンネーム(最大32文字)
  1810. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
  1811. ・zpd_offset~zpd_loop_endは16bitPCM登録ケースは必ず偶数値となる。
  1812.  
  1813. ・zpd_loop_start~zpd_loop_endはデータからの物理オフセットアドレス値を取る。
  1814.